home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / a2.0bemacs-src.lha / Emacs-19.25 / lisp / server.elc < prev    next >
Emacs Compiled Lisp  |  1994-05-28  |  7.4 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
100% file Emacs/XEmacs v19 byte-compiled Lisp data default
99% file data default
55% TrID Emacs/XEmacs byte-compiled Lisp (generic) default
44% TrID Summation Document Image Information Load File default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 72 6d 73 40 6d 6f 6c |piled by| rms@mol|
|00000020| 65 2e 67 6e 75 2e 61 69 | 2e 6d 69 74 2e 65 64 75 |e.gnu.ai|.mit.edu|
|00000030| 20 6f 6e 20 53 61 74 20 | 4d 61 79 20 32 38 20 31 | on Sat |May 28 1|
|00000040| 33 3a 32 30 3a 31 30 20 | 31 39 39 34 0a 3b 3b 3b |3:20:10 |1994.;;;|
|00000050| 20 66 72 6f 6d 20 66 69 | 6c 65 20 2f 68 6f 6d 65 | from fi|le /home|
|00000060| 2f 66 73 66 2f 72 6d 73 | 2f 65 31 39 2f 6c 69 73 |/fsf/rms|/e19/lis|
|00000070| 70 2f 73 65 72 76 65 72 | 2e 65 6c 0a 3b 3b 3b 20 |p/server|.el.;;; |
|00000080| 65 6d 61 63 73 20 76 65 | 72 73 69 6f 6e 20 31 39 |emacs ve|rsion 19|
|00000090| 2e 32 33 2e 39 30 2e 31 | 2e 0a 3b 3b 3b 20 62 79 |.23.90.1|..;;; by|
|000000a0| 74 65 63 6f 6d 70 20 76 | 65 72 73 69 6f 6e 20 46 |tecomp v|ersion F|
|000000b0| 53 46 20 32 2e 31 30 0a | 3b 3b 3b 20 6f 70 74 69 |SF 2.10.|;;; opti|
|000000c0| 6d 69 7a 61 74 69 6f 6e | 20 69 73 20 6f 6e 2e 0a |mization| is on..|
|000000d0| 3b 3b 3b 20 74 68 69 73 | 20 66 69 6c 65 20 75 73 |;;; this| file us|
|000000e0| 65 73 20 6f 70 63 6f 64 | 65 73 20 77 68 69 63 68 |es opcod|es which|
|000000f0| 20 64 6f 20 6e 6f 74 20 | 65 78 69 73 74 20 69 6e | do not |exist in|
|00000100| 20 45 6d 61 63 73 20 31 | 38 2e 0a 0a 28 69 66 20 | Emacs 1|8...(if |
|00000110| 28 61 6e 64 20 28 62 6f | 75 6e 64 70 20 27 65 6d |(and (bo|undp 'em|
|00000120| 61 63 73 2d 76 65 72 73 | 69 6f 6e 29 0a 09 20 28 |acs-vers|ion).. (|
|00000130| 6f 72 20 28 61 6e 64 20 | 28 62 6f 75 6e 64 70 20 |or (and |(boundp |
|00000140| 27 65 70 6f 63 68 3a 3a | 76 65 72 73 69 6f 6e 29 |'epoch::|version)|
|00000150| 20 65 70 6f 63 68 3a 3a | 76 65 72 73 69 6f 6e 29 | epoch::|version)|
|00000160| 0a 09 20 20 20 20 20 28 | 73 74 72 69 6e 67 2d 6c |.. (|string-l|
|00000170| 65 73 73 70 20 65 6d 61 | 63 73 2d 76 65 72 73 69 |essp ema|cs-versi|
|00000180| 6f 6e 20 22 31 39 22 29 | 29 29 0a 20 20 20 20 28 |on "19")|)). (|
|00000190| 65 72 72 6f 72 20 22 60 | 2f 68 6f 6d 65 2f 66 73 |error "`|/home/fs|
|000001a0| 66 2f 72 6d 73 2f 65 31 | 39 2f 6c 69 73 70 2f 73 |f/rms/e1|9/lisp/s|
|000001b0| 65 72 76 65 72 2e 65 6c | 27 20 77 61 73 20 63 6f |erver.el|' was co|
|000001c0| 6d 70 69 6c 65 64 20 66 | 6f 72 20 45 6d 61 63 73 |mpiled f|or Emacs|
|000001d0| 20 31 39 22 29 29 0a 0a | 28 64 65 66 76 61 72 20 | 19"))..|(defvar |
|000001e0| 73 65 72 76 65 72 2d 70 | 72 6f 67 72 61 6d 20 28 |server-p|rogram (|
|000001f0| 65 78 70 61 6e 64 2d 66 | 69 6c 65 2d 6e 61 6d 65 |expand-f|ile-name|
|00000200| 20 22 65 6d 61 63 73 73 | 65 72 76 65 72 22 20 65 | "emacss|erver" e|
|00000210| 78 65 63 2d 64 69 72 65 | 63 74 6f 72 79 29 20 22 |xec-dire|ctory) "|
|00000220| 5c 0a 2a 54 68 65 20 70 | 72 6f 67 72 61 6d 20 74 |\.*The p|rogram t|
|00000230| 6f 20 75 73 65 20 61 73 | 20 74 68 65 20 65 64 69 |o use as| the edi|
|00000240| 74 20 73 65 72 76 65 72 | 2e 22 29 0a 28 64 65 66 |t server|.").(def|
|00000250| 76 61 72 20 73 65 72 76 | 65 72 2d 76 69 73 69 74 |var serv|er-visit|
|00000260| 2d 68 6f 6f 6b 20 6e 69 | 6c 20 22 5c 0a 2a 4c 69 |-hook ni|l "\.*Li|
|00000270| 73 74 20 6f 66 20 68 6f | 6f 6b 73 20 74 6f 20 63 |st of ho|oks to c|
|00000280| 61 6c 6c 20 77 68 65 6e | 20 76 69 73 69 74 69 6e |all when| visitin|
|00000290| 67 20 61 20 66 69 6c 65 | 20 66 6f 72 20 74 68 65 |g a file| for the|
|000002a0| 20 45 6d 61 63 73 20 73 | 65 72 76 65 72 2e 22 29 | Emacs s|erver.")|
|000002b0| 0a 28 64 65 66 76 61 72 | 20 73 65 72 76 65 72 2d |.(defvar| server-|
|000002c0| 73 77 69 74 63 68 2d 68 | 6f 6f 6b 20 6e 69 6c 20 |switch-h|ook nil |
|000002d0| 22 5c 0a 2a 4c 69 73 74 | 20 6f 66 20 68 6f 6f 6b |"\.*List| of hook|
|000002e0| 73 20 74 6f 20 63 61 6c | 6c 20 77 68 65 6e 20 73 |s to cal|l when s|
|000002f0| 77 69 74 63 68 69 6e 67 | 20 74 6f 20 61 20 62 75 |witching| to a bu|
|00000300| 66 66 65 72 20 66 6f 72 | 20 74 68 65 20 45 6d 61 |ffer for| the Ema|
|00000310| 63 73 20 73 65 72 76 65 | 72 2e 22 29 0a 28 64 65 |cs serve|r.").(de|
|00000320| 66 76 61 72 20 73 65 72 | 76 65 72 2d 64 6f 6e 65 |fvar ser|ver-done|
|00000330| 2d 68 6f 6f 6b 20 6e 69 | 6c 20 22 5c 0a 2a 4c 69 |-hook ni|l "\.*Li|
|00000340| 73 74 20 6f 66 20 68 6f | 6f 6b 73 20 74 6f 20 63 |st of ho|oks to c|
|00000350| 61 6c 6c 20 77 68 65 6e | 20 64 6f 6e 65 20 65 64 |all when| done ed|
|00000360| 69 74 69 6e 67 20 61 20 | 62 75 66 66 65 72 20 66 |iting a |buffer f|
|00000370| 6f 72 20 74 68 65 20 45 | 6d 61 63 73 20 73 65 72 |or the E|macs ser|
|00000380| 76 65 72 2e 22 29 0a 28 | 64 65 66 76 61 72 20 73 |ver.").(|defvar s|
|00000390| 65 72 76 65 72 2d 70 72 | 6f 63 65 73 73 20 6e 69 |erver-pr|ocess ni|
|000003a0| 6c 20 22 5c 0a 74 68 65 | 20 63 75 72 72 65 6e 74 |l "\.the| current|
|000003b0| 20 73 65 72 76 65 72 20 | 70 72 6f 63 65 73 73 22 | server |process"|
|000003c0| 29 0a 28 62 79 74 65 2d | 63 6f 64 65 20 22 c0 c1 |).(byte-|code "..|
|000003d0| 21 84 08 00 c2 11 c0 87 | 22 20 5b 62 6f 75 6e 64 |!.......|" [bound|
|000003e0| 70 20 73 65 72 76 65 72 | 2d 70 72 65 76 69 6f 75 |p server|-previou|
|000003f0| 73 2d 73 74 72 69 6e 67 | 20 22 22 5d 20 32 29 0a |s-string| ""] 2).|
|00000400| 28 64 65 66 76 61 72 20 | 73 65 72 76 65 72 2d 63 |(defvar |server-c|
|00000410| 6c 69 65 6e 74 73 20 6e | 69 6c 20 22 5c 0a 4c 69 |lients n|il "\.Li|
|00000420| 73 74 20 6f 66 20 63 75 | 72 72 65 6e 74 20 73 65 |st of cu|rrent se|
|00000430| 72 76 65 72 20 63 6c 69 | 65 6e 74 73 2e 0a 45 61 |rver cli|ents..Ea|
|00000440| 63 68 20 65 6c 65 6d 65 | 6e 74 20 69 73 20 28 43 |ch eleme|nt is (C|
|00000450| 4c 49 45 4e 54 49 44 20 | 42 55 46 46 45 52 53 2e |LIENTID |BUFFERS.|
|00000460| 2e 2e 29 20 77 68 65 72 | 65 20 43 4c 49 45 4e 54 |..) wher|e CLIENT|
|00000470| 49 44 20 69 73 20 61 20 | 73 74 72 69 6e 67 0a 74 |ID is a |string.t|
|00000480| 68 61 74 20 63 61 6e 20 | 62 65 20 67 69 76 65 6e |hat can |be given|
|00000490| 20 74 6f 20 74 68 65 20 | 73 65 72 76 65 72 20 70 | to the |server p|
|000004a0| 72 6f 63 65 73 73 20 74 | 6f 20 69 64 65 6e 74 69 |rocess t|o identi|
|000004b0| 66 79 20 61 20 63 6c 69 | 65 6e 74 2e 0a 57 68 65 |fy a cli|ent..Whe|
|000004c0| 6e 20 61 20 62 75 66 66 | 65 72 20 69 73 20 6d 61 |n a buff|er is ma|
|000004d0| 72 6b 65 64 20 61 73 20 | 5c 22 64 6f 6e 65 5c 22 |rked as |\"done\"|
|000004e0| 2c 20 69 74 20 69 73 20 | 72 65 6d 6f 76 65 64 20 |, it is |removed |
|000004f0| 66 72 6f 6d 20 74 68 69 | 73 20 6c 69 73 74 2e 22 |from thi|s list."|
|00000500| 29 0a 28 64 65 66 76 61 | 72 20 73 65 72 76 65 72 |).(defva|r server|
|00000510| 2d 62 75 66 66 65 72 2d | 63 6c 69 65 6e 74 73 20 |-buffer-|clients |
|00000520| 6e 69 6c 20 22 5c 0a 4c | 69 73 74 20 6f 66 20 63 |nil "\.L|ist of c|
|00000530| 6c 69 65 6e 74 69 64 73 | 20 66 6f 72 20 63 6c 69 |lientids| for cli|
|00000540| 65 6e 74 73 20 72 65 71 | 75 65 73 74 69 6e 67 20 |ents req|uesting |
|00000550| 65 64 69 74 69 6e 67 20 | 6f 66 20 63 75 72 72 65 |editing |of curre|
|00000560| 6e 74 20 62 75 66 66 65 | 72 2e 22 29 0a 28 62 79 |nt buffe|r.").(by|
|00000570| 74 65 2d 63 6f 64 65 20 | 22 c0 c1 21 88 c2 c1 c3 |te-code |"..!....|
|00000580| c4 23 87 22 20 5b 6d 61 | 6b 65 2d 76 61 72 69 61 |.#." [ma|ke-varia|
|00000590| 62 6c 65 2d 62 75 66 66 | 65 72 2d 6c 6f 63 61 6c |ble-buff|er-local|
|000005a0| 20 73 65 72 76 65 72 2d | 62 75 66 66 65 72 2d 63 | server-|buffer-c|
|000005b0| 6c 69 65 6e 74 73 20 70 | 75 74 20 70 65 72 6d 61 |lients p|ut perma|
|000005c0| 6e 65 6e 74 2d 6c 6f 63 | 61 6c 20 74 5d 20 34 29 |nent-loc|al t] 4)|
|000005d0| 0a 28 64 65 66 76 61 72 | 20 73 65 72 76 65 72 2d |.(defvar| server-|
|000005e0| 77 69 6e 64 6f 77 20 6e | 69 6c 20 22 5c 0a 2a 54 |window n|il "\.*T|
|000005f0| 68 65 20 77 69 6e 64 6f | 77 20 74 6f 20 75 73 65 |he windo|w to use|
|00000600| 20 66 6f 72 20 73 65 6c | 65 63 74 69 6e 67 20 45 | for sel|ecting E|
|00000610| 6d 61 63 73 20 73 65 72 | 76 65 72 20 62 75 66 66 |macs ser|ver buff|
|00000620| 65 72 73 2e 0a 49 66 20 | 6e 69 6c 2c 20 75 73 65 |ers..If |nil, use|
|00000630| 20 74 68 65 20 73 65 6c | 65 63 74 65 64 20 77 69 | the sel|ected wi|
|00000640| 6e 64 6f 77 2e 0a 49 66 | 20 69 74 20 69 73 20 61 |ndow..If| it is a|
|00000650| 20 66 72 61 6d 65 2c 20 | 75 73 65 20 74 68 65 20 | frame, |use the |
|00000660| 66 72 61 6d 65 27 73 20 | 73 65 6c 65 63 74 65 64 |frame's |selected|
|00000670| 20 77 69 6e 64 6f 77 2e | 22 29 0a 28 64 65 66 76 | window.|").(defv|
|00000680| 61 72 20 73 65 72 76 65 | 72 2d 74 65 6d 70 2d 66 |ar serve|r-temp-f|
|00000690| 69 6c 65 2d 72 65 67 65 | 78 70 20 22 5e 2f 74 6d |ile-rege|xp "^/tm|
|000006a0| 70 2f 52 65 5c 5c 7c 2f | 64 72 61 66 74 24 22 20 |p/Re\\|/|draft$" |
|000006b0| 22 5c 0a 2a 52 65 67 65 | 78 70 20 77 68 69 63 68 |"\.*Rege|xp which|
|000006c0| 20 73 68 6f 75 6c 64 20 | 6d 61 74 63 68 20 66 69 | should |match fi|
|000006d0| 6c 65 6e 61 6d 65 73 20 | 6f 66 20 74 65 6d 70 6f |lenames |of tempo|
|000006e0| 72 61 72 79 20 66 69 6c | 65 73 0a 77 68 69 63 68 |rary fil|es.which|
|000006f0| 20 61 72 65 20 64 65 6c | 65 74 65 64 20 61 6e 64 | are del|eted and|
|00000700| 20 72 65 75 73 65 64 20 | 61 66 74 65 72 20 65 61 | reused |after ea|
|00000710| 63 68 20 65 64 69 74 0a | 62 79 20 74 68 65 20 70 |ch edit.|by the p|
|00000720| 72 6f 67 72 61 6d 73 20 | 74 68 61 74 20 69 6e 76 |rograms |that inv|
|00000730| 6f 6b 65 20 74 68 65 20 | 65 6d 61 63 73 20 73 65 |oke the |emacs se|
|00000740| 72 76 65 72 2e 22 29 0a | 28 62 79 74 65 2d 63 6f |rver.").|(byte-co|
|00000750| 64 65 20 22 c0 09 9e 84 | 5c 6e 00 c2 09 42 11 c3 |de "....|\n...B..|
|00000760| c4 c5 5c 22 88 c3 c6 c7 | 5c 22 87 22 20 5b 73 65 |..\"....|\"." [se|
|00000770| 72 76 65 72 2d 62 75 66 | 66 65 72 2d 63 6c 69 65 |rver-buf|fer-clie|
|00000780| 6e 74 73 20 6d 69 6e 6f | 72 2d 6d 6f 64 65 2d 61 |nts mino|r-mode-a|
|00000790| 6c 69 73 74 20 28 73 65 | 72 76 65 72 2d 62 75 66 |list (se|rver-buf|
|000007a0| 66 65 72 2d 63 6c 69 65 | 6e 74 73 20 22 20 53 65 |fer-clie|nts " Se|
|000007b0| 72 76 65 72 22 29 20 64 | 65 66 61 6c 69 61 73 20 |rver") d|efalias |
|000007c0| 73 65 72 76 65 72 2d 6c | 6f 67 20 23 5b 28 73 74 |server-l|og #[(st|
|000007d0| 72 69 6e 67 29 20 22 c0 | c1 21 85 17 00 8a c1 71 |ring) ".|.!.....q|
|000007e0| 88 64 62 88 5c 6e 63 88 | 6f 86 16 00 c3 20 29 87 |.db.\nc.|o.... ).|
|000007f0| 22 20 5b 67 65 74 2d 62 | 75 66 66 65 72 20 22 2a |" [get-b|uffer "*|
|00000800| 73 65 72 76 65 72 2a 22 | 20 73 74 72 69 6e 67 20 |server*"| string |
|00000810| 6e 65 77 6c 69 6e 65 5d | 20 32 5d 20 73 65 72 76 |newline]| 2] serv|
|00000820| 65 72 2d 73 65 6e 74 69 | 6e 65 6c 20 23 5b 28 70 |er-senti|nel #[(p|
|00000830| 72 6f 63 20 6d 73 67 29 | 20 22 c0 09 21 c2 3d 83 |roc msg)| "..!.=.|
|00000840| 0e 00 c3 c4 c5 21 21 87 | c0 09 21 c6 3d 85 1b 00 |.....!!.|..!.=...|
|00000850| c3 c4 c7 21 21 87 22 20 | 5b 70 72 6f 63 65 73 73 |...!!." |[process|
|00000860| 2d 73 74 61 74 75 73 20 | 70 72 6f 63 20 65 78 69 |-status |proc exi|
|00000870| 74 20 73 65 72 76 65 72 | 2d 6c 6f 67 20 6d 65 73 |t server|-log mes|
|00000880| 73 61 67 65 20 22 53 65 | 72 76 65 72 20 73 75 62 |sage "Se|rver sub|
|00000890| 70 72 6f 63 65 73 73 20 | 65 78 69 74 65 64 22 20 |process |exited" |
|000008a0| 73 69 67 6e 61 6c 20 22 | 53 65 72 76 65 72 20 73 |signal "|Server s|
|000008b0| 75 62 70 72 6f 63 65 73 | 73 20 6b 69 6c 6c 65 64 |ubproces|s killed|
|000008c0| 22 5d 20 33 5d 5d 20 33 | 29 0a 28 64 65 66 61 6c |"] 3]] 3|).(defal|
|000008d0| 69 61 73 20 27 73 65 72 | 76 65 72 2d 73 74 61 72 |ias 'ser|ver-star|
|000008e0| 74 20 23 5b 28 26 6f 70 | 74 69 6f 6e 61 6c 20 6c |t #[(&op|tional l|
|000008f0| 65 61 76 65 2d 64 65 61 | 64 29 20 22 08 83 0e 00 |eave-dea|d) "....|
|00000900| c1 08 c2 5c 22 88 c2 c3 | c4 8f 88 c2 c5 c6 8f 88 |...\"...|........|
|00000910| 0e 07 83 28 00 0e 07 40 | 41 40 1e 08 c9 0e 08 21 |...(...@|A@.....!|
|00000920| 88 29 82 13 00 0e 5c 6e | 3f 85 4c 00 08 83 38 00 |.)....\n|?.L...8.|
|00000930| cb cc cd 21 21 88 ce cf | c2 0e 10 23 10 c1 08 d1 |...!!...|...#....|
|00000940| 5c 22 88 d2 08 d3 5c 22 | 88 d4 08 21 87 22 20 5b |\"....\"|...!." [|
|00000950| 73 65 72 76 65 72 2d 70 | 72 6f 63 65 73 73 20 73 |server-p|rocess s|
|00000960| 65 74 2d 70 72 6f 63 65 | 73 73 2d 73 65 6e 74 69 |et-proce|ss-senti|
|00000970| 6e 65 6c 20 6e 69 6c 20 | 28 64 65 6c 65 74 65 2d |nel nil |(delete-|
|00000980| 70 72 6f 63 65 73 73 20 | 73 65 72 76 65 72 2d 70 |process |server-p|
|00000990| 72 6f 63 65 73 73 29 20 | 28 28 65 72 72 6f 72 29 |rocess) |((error)|
|000009a0| 29 20 28 64 65 6c 65 74 | 65 2d 66 69 6c 65 20 22 |) (delet|e-file "|
|000009b0| 7e 2f 2e 65 6d 61 63 73 | 5f 73 65 72 76 65 72 22 |~/.emacs|_server"|
|000009c0| 29 20 28 28 65 72 72 6f | 72 29 29 20 73 65 72 76 |) ((erro|r)) serv|
|000009d0| 65 72 2d 63 6c 69 65 6e | 74 73 20 62 75 66 66 65 |er-clien|ts buffe|
|000009e0| 72 20 73 65 72 76 65 72 | 2d 62 75 66 66 65 72 2d |r server|-buffer-|
|000009f0| 64 6f 6e 65 20 6c 65 61 | 76 65 2d 64 65 61 64 20 |done lea|ve-dead |
|00000a00| 73 65 72 76 65 72 2d 6c | 6f 67 20 6d 65 73 73 61 |server-l|og messa|
|00000a10| 67 65 20 22 52 65 73 74 | 61 72 74 69 6e 67 20 73 |ge "Rest|arting s|
|00000a20| 65 72 76 65 72 22 20 73 | 74 61 72 74 2d 70 72 6f |erver" s|tart-pro|
|00000a30| 63 65 73 73 20 22 73 65 | 72 76 65 72 22 20 73 65 |cess "se|rver" se|
|00000a40| 72 76 65 72 2d 70 72 6f | 67 72 61 6d 20 73 65 72 |rver-pro|gram ser|
|00000a50| 76 65 72 2d 73 65 6e 74 | 69 6e 65 6c 20 73 65 74 |ver-sent|inel set|
|00000a60| 2d 70 72 6f 63 65 73 73 | 2d 66 69 6c 74 65 72 20 |-process|-filter |
|00000a70| 73 65 72 76 65 72 2d 70 | 72 6f 63 65 73 73 2d 66 |server-p|rocess-f|
|00000a80| 69 6c 74 65 72 20 70 72 | 6f 63 65 73 73 2d 6b 69 |ilter pr|ocess-ki|
|00000a90| 6c 6c 2d 77 69 74 68 6f | 75 74 2d 71 75 65 72 79 |ll-witho|ut-query|
|00000aa0| 5d 20 34 20 22 5c 0a 41 | 6c 6c 6f 77 20 74 68 69 |] 4 "\.A|llow thi|
|00000ab0| 73 20 45 6d 61 63 73 20 | 70 72 6f 63 65 73 73 20 |s Emacs |process |
|00000ac0| 74 6f 20 62 65 20 61 20 | 73 65 72 76 65 72 20 66 |to be a |server f|
|00000ad0| 6f 72 20 63 6c 69 65 6e | 74 20 70 72 6f 63 65 73 |or clien|t proces|
|00000ae0| 73 65 73 2e 0a 54 68 69 | 73 20 73 74 61 72 74 73 |ses..Thi|s starts|
|00000af0| 20 61 20 73 65 72 76 65 | 72 20 63 6f 6d 6d 75 6e | a serve|r commun|
|00000b00| 69 63 61 74 69 6f 6e 73 | 20 73 75 62 70 72 6f 63 |ications| subproc|
|00000b10| 65 73 73 20 74 68 72 6f | 75 67 68 20 77 68 69 63 |ess thro|ugh whic|
|00000b20| 68 0a 63 6c 69 65 6e 74 | 20 5c 22 65 64 69 74 6f |h.client| \"edito|
|00000b30| 72 73 5c 22 20 63 61 6e | 20 73 65 6e 64 20 79 6f |rs\" can| send yo|
|00000b40| 75 72 20 65 64 69 74 69 | 6e 67 20 63 6f 6d 6d 61 |ur editi|ng comma|
|00000b50| 6e 64 73 20 74 6f 20 74 | 68 69 73 20 45 6d 61 63 |nds to t|his Emac|
|00000b60| 73 20 6a 6f 62 2e 0a 54 | 6f 20 75 73 65 20 74 68 |s job..T|o use th|
|00000b70| 65 20 73 65 72 76 65 72 | 2c 20 73 65 74 20 75 70 |e server|, set up|
|00000b80| 20 74 68 65 20 70 72 6f | 67 72 61 6d 20 60 65 74 | the pro|gram `et|
|00000b90| 63 2f 65 6d 61 63 73 63 | 6c 69 65 6e 74 27 20 69 |c/emacsc|lient' i|
|00000ba0| 6e 20 74 68 65 0a 45 6d | 61 63 73 20 64 69 73 74 |n the.Em|acs dist|
|00000bb0| 72 69 62 75 74 69 6f 6e | 20 61 73 20 79 6f 75 72 |ribution| as your|
|00000bc0| 20 73 74 61 6e 64 61 72 | 64 20 5c 22 65 64 69 74 | standar|d \"edit|
|00000bd0| 6f 72 5c 22 2e 0a 0a 50 | 72 65 66 69 78 20 61 72 |or\"...P|refix ar|
|00000be0| 67 20 6d 65 61 6e 73 20 | 6a 75 73 74 20 6b 69 6c |g means |just kil|
|00000bf0| 6c 20 61 6e 79 20 65 78 | 69 73 74 69 6e 67 20 73 |l any ex|isting s|
|00000c00| 65 72 76 65 72 20 63 6f | 6d 6d 75 6e 69 63 61 74 |erver co|mmunicat|
|00000c10| 69 6f 6e 73 20 73 75 62 | 70 72 6f 63 65 73 73 2e |ions sub|process.|
|00000c20| 22 20 22 50 22 5d 29 0a | 28 64 65 66 61 6c 69 61 |" "P"]).|(defalia|
|00000c30| 73 20 28 71 75 6f 74 65 | 20 73 65 72 76 65 72 2d |s (quote| server-|
|00000c40| 70 72 6f 63 65 73 73 2d | 66 69 6c 74 65 72 29 20 |process-|filter) |
|00000c50| 23 5b 28 70 72 6f 63 20 | 73 74 72 69 6e 67 29 20 |#[(proc |string) |
|00000c60| 22 c0 09 21 88 5c 6e 09 | 50 89 11 89 47 53 48 c3 |"..!.\n.|P...GSH.|
|00000c70| 3d 83 1b 00 c4 c5 09 5c | 22 c6 3d 84 1f 00 09 89 |=......\|".=.....|
|00000c80| 12 87 09 c6 95 c7 4f 11 | c8 12 09 c6 c4 c9 09 5c |......O.|.......\|
|00000c90| 22 4f 43 c7 ca 1e 0b 1e | 5c 66 1e 0d 09 c6 95 c7 |"OC.....|\f......|
|00000ca0| 4f 11 c4 ce 09 5c 22 83 | 78 00 09 c6 94 c6 95 53 |O....\".|x......S|
|00000cb0| 4f 1e 0f 09 c6 95 c7 4f | 11 c4 d0 0e 0f 5c 22 83 |O......O|.....\".|
|00000cc0| 67 00 d1 0e 0f ca c7 4f | 21 16 0b 82 74 00 0e 0f |g......O|!...t...|
|00000cd0| 0e 0b 44 0e 5c 66 42 16 | 5c 66 ca 16 0b 29 82 3d |..D.\fB.|\f...).=|
|00000ce0| 00 d2 0e 5c 66 0e 0d 5c | 22 88 0e 0d 0e 13 42 16 |...\f..\|".....B.|
|00000cf0| 13 d4 0e 0d 41 40 21 88 | d5 d6 21 88 d7 d8 d9 21 |....A@!.|..!....!|
|00000d00| 21 2b 87 22 20 5b 73 65 | 72 76 65 72 2d 6c 6f 67 |!+." [se|rver-log|
|00000d10| 20 73 74 72 69 6e 67 20 | 73 65 72 76 65 72 2d 70 | string |server-p|
|00000d20| 72 65 76 69 6f 75 73 2d | 73 74 72 69 6e 67 20 31 |revious-|string 1|
|00000d30| 30 20 73 74 72 69 6e 67 | 2d 6d 61 74 63 68 20 22 |0 string|-match "|
|00000d40| 43 6c 69 65 6e 74 3a 20 | 22 20 30 20 6e 69 6c 20 |Client: |" 0 nil |
|00000d50| 22 22 20 22 20 22 20 31 | 20 6c 69 6e 65 6e 6f 20 |"" " " 1| lineno |
|00000d60| 66 69 6c 65 73 20 63 6c | 69 65 6e 74 20 22 5b 5e |files cl|ient "[^|
|00000d70| 20 5d 2b 20 22 20 61 72 | 67 20 22 5c 5c 60 5c 5c | ]+ " ar|g "\\`\\|
|00000d80| 2b 5b 30 2d 39 5d 2b 5c | 5c 27 22 20 72 65 61 64 |+[0-9]+\|\'" read|
|00000d90| 20 73 65 72 76 65 72 2d | 76 69 73 69 74 2d 66 69 | server-|visit-fi|
|00000da0| 6c 65 73 20 73 65 72 76 | 65 72 2d 63 6c 69 65 6e |les serv|er-clien|
|00000db0| 74 73 20 73 65 72 76 65 | 72 2d 73 77 69 74 63 68 |ts serve|r-switch|
|00000dc0| 2d 62 75 66 66 65 72 20 | 72 75 6e 2d 68 6f 6f 6b |-buffer |run-hook|
|00000dd0| 73 20 73 65 72 76 65 72 | 2d 73 77 69 74 63 68 2d |s server|-switch-|
|00000de0| 68 6f 6f 6b 20 6d 65 73 | 73 61 67 65 20 73 75 62 |hook mes|sage sub|
|00000df0| 73 74 69 74 75 74 65 2d | 63 6f 6d 6d 61 6e 64 2d |stitute-|command-|
|00000e00| 6b 65 79 73 20 22 57 68 | 65 6e 20 64 6f 6e 65 20 |keys "Wh|en done |
|00000e10| 77 69 74 68 20 61 20 62 | 75 66 66 65 72 2c 20 74 |with a b|uffer, t|
|00000e20| 79 70 65 20 5c 5c 5b 73 | 65 72 76 65 72 2d 65 64 |ype \\[s|erver-ed|
|00000e30| 69 74 5d 2e 22 5d 20 36 | 5d 29 0a 28 64 65 66 61 |it]."] 6|]).(defa|
|00000e40| 6c 69 61 73 20 27 73 65 | 72 76 65 72 2d 76 69 73 |lias 'se|rver-vis|
|00000e50| 69 74 2d 66 69 6c 65 73 | 20 23 5b 28 66 69 6c 65 |it-files| #[(file|
|00000e60| 73 20 63 6c 69 65 6e 74 | 29 20 22 c0 c1 70 1a 1b |s client|) "..p..|
|00000e70| 1c c5 8e 0e 06 83 76 00 | 0e 06 40 40 1e 07 c8 0e |......v.|..@@....|
|00000e80| 07 21 89 1a 83 4e 00 5c | 6e 71 83 4e 00 c9 0e 07 |.!...N.\|nq.N....|
|00000e90| 21 83 3c 00 ca 5c 6e 21 | 83 34 00 cb 5c 6e 21 83 |!.<..\n!|.4..\n!.|
|00000ea0| 58 00 cc c1 c0 5c 22 88 | 82 58 00 cd ce 0e 07 cf |X....\".|.X......|
|00000eb0| 51 21 83 58 00 d0 0e 07 | 21 88 82 58 00 d1 0e 07 |Q!.X....|!..X....|
|00000ec0| 21 71 88 d2 d3 21 88 2a | d4 0e 06 40 41 40 21 88 |!q...!.*|...@A@!.|
|00000ed0| 0e 15 40 0e 16 42 16 16 | 70 5c 66 42 14 0e 06 41 |..@..B..|p\fB...A|
|00000ee0| 89 16 06 84 0d 00 29 0e | 15 5c 66 a4 2b 87 22 20 |......).|.\f.+." |
|00000ef0| 5b 6e 69 6c 20 74 20 6f | 62 75 66 20 6c 61 73 74 |[nil t o|buf last|
|00000f00| 2d 6e 6f 6e 6d 65 6e 75 | 2d 65 76 65 6e 74 20 63 |-nonmenu|-event c|
|00000f10| 6c 69 65 6e 74 2d 72 65 | 63 6f 72 64 20 28 28 73 |lient-re|cord ((s|
|00000f20| 65 74 2d 62 75 66 66 65 | 72 20 6f 62 75 66 29 29 |et-buffe|r obuf))|
|00000f30| 20 66 69 6c 65 73 20 66 | 69 6c 65 6e 20 67 65 74 | files f|ilen get|
|00000f40| 2d 66 69 6c 65 2d 62 75 | 66 66 65 72 20 66 69 6c |-file-bu|ffer fil|
|00000f50| 65 2d 65 78 69 73 74 73 | 2d 70 20 76 65 72 69 66 |e-exists|-p verif|
|00000f60| 79 2d 76 69 73 69 74 65 | 64 2d 66 69 6c 65 2d 6d |y-visite|d-file-m|
|00000f70| 6f 64 74 69 6d 65 20 62 | 75 66 66 65 72 2d 6d 6f |odtime b|uffer-mo|
|00000f80| 64 69 66 69 65 64 2d 70 | 20 72 65 76 65 72 74 2d |dified-p| revert-|
|00000f90| 62 75 66 66 65 72 20 79 | 2d 6f 72 2d 6e 2d 70 20 |buffer y|-or-n-p |
|00000fa0| 22 46 69 6c 65 20 6e 6f | 20 6c 6f 6e 67 65 72 20 |"File no| longer |
|00000fb0| 65 78 69 73 74 73 3a 20 | 22 20 22 2c 20 77 72 69 |exists: |" ", wri|
|00000fc0| 74 65 20 62 75 66 66 65 | 72 20 74 6f 20 66 69 6c |te buffe|r to fil|
|00000fd0| 65 3f 20 22 20 77 72 69 | 74 65 2d 66 69 6c 65 20 |e? " wri|te-file |
|00000fe0| 66 69 6e 64 2d 66 69 6c | 65 2d 6e 6f 73 65 6c 65 |find-fil|e-nosele|
|00000ff0| 63 74 20 72 75 6e 2d 68 | 6f 6f 6b 73 20 73 65 72 |ct run-h|ooks ser|
|00001000| 76 65 72 2d 76 69 73 69 | 74 2d 68 6f 6f 6b 20 67 |ver-visi|t-hook g|
|00001010| 6f 74 6f 2d 6c 69 6e 65 | 20 63 6c 69 65 6e 74 20 |oto-line| client |
|00001020| 73 65 72 76 65 72 2d 62 | 75 66 66 65 72 2d 63 6c |server-b|uffer-cl|
|00001030| 69 65 6e 74 73 5d 20 35 | 20 22 5c 0a 46 69 6e 64 |ients] 5| "\.Find|
|00001040| 73 20 46 49 4c 45 53 20 | 61 6e 64 20 72 65 74 75 |s FILES |and retu|
|00001050| 72 6e 73 20 74 68 65 20 | 6c 69 73 74 20 43 4c 49 |rns the |list CLI|
|00001060| 45 4e 54 20 77 69 74 68 | 20 74 68 65 20 62 75 66 |ENT with| the buf|
|00001070| 66 65 72 73 20 6e 63 6f | 6e 63 27 64 2e 0a 46 49 |fers nco|nc'd..FI|
|00001080| 4c 45 53 20 69 73 20 61 | 6e 20 61 6c 69 73 74 20 |LES is a|n alist |
|00001090| 77 68 6f 73 65 20 65 6c | 65 6d 65 6e 74 73 20 61 |whose el|ements a|
|000010a0| 72 65 20 28 46 49 4c 45 | 4e 41 4d 45 20 4c 49 4e |re (FILE|NAME LIN|
|000010b0| 45 4e 55 4d 42 45 52 29 | 2e 22 5d 29 0a 28 64 65 |ENUMBER)|."]).(de|
|000010c0| 66 61 6c 69 61 73 20 27 | 73 65 72 76 65 72 2d 62 |falias '|server-b|
|000010d0| 75 66 66 65 72 2d 64 6f | 6e 65 20 23 5b 28 62 75 |uffer-do|ne #[(bu|
|000010e0| 66 66 65 72 29 20 22 c0 | 09 21 c2 3d c3 5c 66 1d |ffer) ".|.!.=.\f.|
|000010f0| 1e 06 1e 07 0d 83 55 00 | 0d 40 1e 08 0e 06 84 5c |......U.|.@.....\|
|00001100| 22 00 0e 09 0e 08 3e 41 | 40 16 06 ca 0e 09 0e 08 |".....>A|@.......|
|00001110| 5c 22 88 0e 08 41 84 4d | 00 0e 07 83 47 00 cb 09 |\"...A.M|....G...|
|00001120| cc cd 0e 08 40 5c 22 5c | 22 88 ce cc cd 0e 08 40 |....@\"\|"......@|
|00001130| 5c 22 21 88 ca 0e 08 5c | 66 5c 22 14 29 0d 41 89 |\"!....\|f\".).A.|
|00001140| 15 84 10 00 cf 0e 09 21 | 83 7d 00 8a 0e 09 71 88 |.......!|.}....q.|
|00001150| c3 16 10 d1 d2 21 88 29 | d3 0e 09 21 83 78 00 d4 |.....!.)|...!.x..|
|00001160| 0e 09 21 88 82 7d 00 d5 | 0e 09 21 88 0e 06 2b 87 |..!..}..|..!...+.|
|00001170| 22 20 5b 70 72 6f 63 65 | 73 73 2d 73 74 61 74 75 |" [proce|ss-statu|
|00001180| 73 20 73 65 72 76 65 72 | 2d 70 72 6f 63 65 73 73 |s server|-process|
|00001190| 20 72 75 6e 20 6e 69 6c | 20 73 65 72 76 65 72 2d | run nil| server-|
|000011a0| 63 6c 69 65 6e 74 73 20 | 6f 6c 64 2d 63 6c 69 65 |clients |old-clie|
|000011b0| 6e 74 73 20 6e 65 78 74 | 2d 62 75 66 66 65 72 20 |nts next|-buffer |
|000011c0| 72 75 6e 6e 69 6e 67 20 | 63 6c 69 65 6e 74 20 62 |running |client b|
|000011d0| 75 66 66 65 72 20 64 65 | 6c 71 20 73 65 6e 64 2d |uffer de|lq send-|
|000011e0| 73 74 72 69 6e 67 20 66 | 6f 72 6d 61 74 20 22 43 |string f|ormat "C|
|000011f0| 6c 6f 73 65 3a 20 25 73 | 20 44 6f 6e 65 5c 6e 22 |lose: %s| Done\n"|
|00001200| 20 73 65 72 76 65 72 2d | 6c 6f 67 20 62 75 66 66 | server-|log buff|
|00001210| 65 72 2d 6e 61 6d 65 20 | 73 65 72 76 65 72 2d 62 |er-name |server-b|
|00001220| 75 66 66 65 72 2d 63 6c | 69 65 6e 74 73 20 72 75 |uffer-cl|ients ru|
|00001230| 6e 2d 68 6f 6f 6b 73 20 | 73 65 72 76 65 72 2d 64 |n-hooks |server-d|
|00001240| 6f 6e 65 2d 68 6f 6f 6b | 20 73 65 72 76 65 72 2d |one-hook| server-|
|00001250| 74 65 6d 70 2d 66 69 6c | 65 2d 70 20 6b 69 6c 6c |temp-fil|e-p kill|
|00001260| 2d 62 75 66 66 65 72 20 | 62 75 72 79 2d 62 75 66 |-buffer |bury-buf|
|00001270| 66 65 72 5d 20 36 20 22 | 5c 0a 4d 61 72 6b 20 42 |fer] 6 "|\.Mark B|
|00001280| 55 46 46 45 52 20 61 73 | 20 5c 22 64 6f 6e 65 5c |UFFER as| \"done\|
|00001290| 22 20 66 6f 72 20 69 74 | 73 20 63 6c 69 65 6e 74 |" for it|s client|
|000012a0| 28 73 29 2e 0a 42 75 72 | 69 65 73 20 74 68 65 20 |(s)..Bur|ies the |
|000012b0| 62 75 66 66 65 72 2c 20 | 61 6e 64 20 72 65 74 75 |buffer, |and retu|
|000012c0| 72 6e 73 20 61 6e 6f 74 | 68 65 72 20 73 65 72 76 |rns anot|her serv|
|000012d0| 65 72 20 62 75 66 66 65 | 72 0a 61 73 20 61 20 73 |er buffe|r.as a s|
|000012e0| 75 67 67 65 73 74 69 6f | 6e 20 66 6f 72 20 77 68 |uggestio|n for wh|
|000012f0| 61 74 20 74 6f 20 73 65 | 6c 65 63 74 20 6e 65 78 |at to se|lect nex|
|00001300| 74 2e 22 5d 29 0a 28 64 | 65 66 61 6c 69 61 73 20 |t."]).(d|efalias |
|00001310| 27 73 65 72 76 65 72 2d | 74 65 6d 70 2d 66 69 6c |'server-|temp-fil|
|00001320| 65 2d 70 20 23 5b 28 62 | 75 66 66 65 72 29 20 22 |e-p #[(b|uffer) "|
|00001330| c0 09 21 85 5c 66 00 c2 | 0b c0 09 21 5c 22 87 22 |..!.\f..|...!\"."|
|00001340| 20 5b 62 75 66 66 65 72 | 2d 66 69 6c 65 2d 6e 61 | [buffer|-file-na|
|00001350| 6d 65 20 62 75 66 66 65 | 72 20 73 74 72 69 6e 67 |me buffe|r string|
|00001360| 2d 6d 61 74 63 68 20 73 | 65 72 76 65 72 2d 74 65 |-match s|erver-te|
|00001370| 6d 70 2d 66 69 6c 65 2d | 72 65 67 65 78 70 5d 20 |mp-file-|regexp] |
|00001380| 34 20 22 5c 0a 52 65 74 | 75 72 6e 20 6e 6f 6e 2d |4 "\.Ret|urn non-|
|00001390| 6e 69 6c 20 69 66 20 42 | 55 46 46 45 52 20 63 6f |nil if B|UFFER co|
|000013a0| 6e 74 61 69 6e 73 20 61 | 20 66 69 6c 65 20 63 6f |ntains a| file co|
|000013b0| 6e 73 69 64 65 72 65 64 | 20 74 65 6d 70 6f 72 61 |nsidered| tempora|
|000013c0| 72 79 2e 0a 54 68 65 73 | 65 20 61 72 65 20 66 69 |ry..Thes|e are fi|
|000013d0| 6c 65 73 20 77 68 6f 73 | 65 20 6e 61 6d 65 73 20 |les whos|e names |
|000013e0| 73 75 67 67 65 73 74 20 | 74 68 65 79 20 61 72 65 |suggest |they are|
|000013f0| 20 72 65 70 65 61 74 65 | 64 6c 79 0a 72 65 75 73 | repeate|dly.reus|
|00001400| 65 64 20 74 6f 20 70 61 | 73 73 20 69 6e 66 6f 72 |ed to pa|ss infor|
|00001410| 6d 61 74 69 6f 6e 20 74 | 6f 20 61 6e 6f 74 68 65 |mation t|o anothe|
|00001420| 72 20 70 72 6f 67 72 61 | 6d 2e 0a 0a 54 68 65 20 |r progra|m...The |
|00001430| 76 61 72 69 61 62 6c 65 | 20 60 73 65 72 76 65 72 |variable| `server|
|00001440| 2d 74 65 6d 70 2d 66 69 | 6c 65 2d 72 65 67 65 78 |-temp-fi|le-regex|
|00001450| 70 27 20 63 6f 6e 74 72 | 6f 6c 73 20 77 68 69 63 |p' contr|ols whic|
|00001460| 68 20 66 69 6c 65 6e 61 | 6d 65 73 0a 61 72 65 20 |h filena|mes.are |
|00001470| 63 6f 6e 73 69 64 65 72 | 65 64 20 74 65 6d 70 6f |consider|ed tempo|
|00001480| 72 61 72 79 2e 22 5d 29 | 0a 28 64 65 66 61 6c 69 |rary."])|.(defali|
|00001490| 61 73 20 27 73 65 72 76 | 65 72 2d 64 6f 6e 65 20 |as 'serv|er-done |
|000014a0| 23 5b 6e 69 6c 20 22 70 | 18 09 85 2d 00 c2 08 21 |#[nil "p|...-...!|
|000014b0| 83 17 00 c3 89 1c 1d c6 | 20 88 2a 82 2a 00 c7 20 |........| .*.*.. |
|000014c0| 83 2a 00 c8 c9 0e 5c 6e | cb 51 21 83 2a 00 c6 08 |.*....\n|.Q!.*...|
|000014d0| 21 88 cc 08 21 29 87 22 | 20 5b 62 75 66 66 65 72 |!...!)."| [buffer|
|000014e0| 20 73 65 72 76 65 72 2d | 62 75 66 66 65 72 2d 63 | server-|buffer-c|
|000014f0| 6c 69 65 6e 74 73 20 73 | 65 72 76 65 72 2d 74 65 |lients s|erver-te|
|00001500| 6d 70 2d 66 69 6c 65 2d | 70 20 6e 69 6c 20 62 75 |mp-file-|p nil bu|
|00001510| 66 66 65 72 2d 62 61 63 | 6b 65 64 2d 75 70 20 76 |ffer-bac|ked-up v|
|00001520| 65 72 73 69 6f 6e 2d 63 | 6f 6e 74 72 6f 6c 20 73 |ersion-c|ontrol s|
|00001530| 61 76 65 2d 62 75 66 66 | 65 72 20 62 75 66 66 65 |ave-buff|er buffe|
|00001540| 72 2d 6d 6f 64 69 66 69 | 65 64 2d 70 20 79 2d 6f |r-modifi|ed-p y-o|
|00001550| 72 2d 6e 2d 70 20 22 53 | 61 76 65 20 66 69 6c 65 |r-n-p "S|ave file|
|00001560| 20 22 20 62 75 66 66 65 | 72 2d 66 69 6c 65 2d 6e | " buffe|r-file-n|
|00001570| 61 6d 65 20 22 3f 20 22 | 20 73 65 72 76 65 72 2d |ame "? "| server-|
|00001580| 62 75 66 66 65 72 2d 64 | 6f 6e 65 5d 20 34 20 22 |buffer-d|one] 4 "|
|00001590| 5c 0a 4f 66 66 65 72 20 | 74 6f 20 73 61 76 65 20 |\.Offer |to save |
|000015a0| 63 75 72 72 65 6e 74 20 | 62 75 66 66 65 72 2c 20 |current |buffer, |
|000015b0| 6d 61 72 6b 20 69 74 20 | 61 73 20 5c 22 64 6f 6e |mark it |as \"don|
|000015c0| 65 5c 22 20 66 6f 72 20 | 63 6c 69 65 6e 74 73 2e |e\" for |clients.|
|000015d0| 0a 54 68 65 6e 20 62 75 | 72 79 20 69 74 2c 20 61 |.Then bu|ry it, a|
|000015e0| 6e 64 20 72 65 74 75 72 | 6e 20 61 20 73 75 67 67 |nd retur|n a sugg|
|000015f0| 65 73 74 65 64 20 62 75 | 66 66 65 72 20 74 6f 20 |ested bu|ffer to |
|00001600| 73 65 6c 65 63 74 20 6e | 65 78 74 2e 22 5d 29 0a |select n|ext."]).|
|00001610| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c0 c1 c2 5c |(byte-co|de "...\|
|00001620| 22 88 c3 c4 c1 5c 22 88 | c0 c5 c6 5c 22 88 c3 c7 |"....\".|...\"...|
|00001630| c5 5c 22 87 22 20 5b 64 | 65 66 61 6c 69 61 73 20 |.\"." [d|efalias |
|00001640| 73 65 72 76 65 72 2d 6b | 69 6c 6c 2d 62 75 66 66 |server-k|ill-buff|
|00001650| 65 72 2d 71 75 65 72 79 | 2d 66 75 6e 63 74 69 6f |er-query|-functio|
|00001660| 6e 20 23 5b 6e 69 6c 20 | 22 08 3f 86 0d 00 c1 c2 |n #[nil |".?.....|
|00001670| c3 c4 70 21 5c 22 21 87 | 22 20 5b 73 65 72 76 65 |..p!\"!.|" [serve|
|00001680| 72 2d 62 75 66 66 65 72 | 2d 63 6c 69 65 6e 74 73 |r-buffer|-clients|
|00001690| 20 79 65 73 2d 6f 72 2d | 6e 6f 2d 70 20 66 6f 72 | yes-or-|no-p for|
|000016a0| 6d 61 74 20 22 42 75 66 | 66 65 72 20 60 25 73 27 |mat "Buf|fer `%s'|
|000016b0| 20 73 74 69 6c 6c 20 68 | 61 73 20 63 6c 69 65 6e | still h|as clien|
|000016c0| 74 73 3b 20 6b 69 6c 6c | 20 69 74 3f 20 22 20 62 |ts; kill| it? " b|
|000016d0| 75 66 66 65 72 2d 6e 61 | 6d 65 5d 20 35 5d 20 61 |uffer-na|me] 5] a|
|000016e0| 64 64 2d 68 6f 6f 6b 20 | 6b 69 6c 6c 2d 62 75 66 |dd-hook |kill-buf|
|000016f0| 66 65 72 2d 71 75 65 72 | 79 2d 66 75 6e 63 74 69 |fer-quer|y-functi|
|00001700| 6f 6e 73 20 73 65 72 76 | 65 72 2d 6b 69 6c 6c 2d |ons serv|er-kill-|
|00001710| 65 6d 61 63 73 2d 71 75 | 65 72 79 2d 66 75 6e 63 |emacs-qu|ery-func|
|00001720| 74 69 6f 6e 20 23 5b 6e | 69 6c 20 22 c0 09 1a 1b |tion #[n|il "....|
|00001730| 5c 6e 83 1f 00 c4 c5 c6 | c5 c7 5c 6e 40 41 5c 22 |\n......|..\n@A\"|
|00001740| 5c 22 3e 83 18 00 c4 13 | 5c 6e 41 89 12 84 08 00 |\">.....|\nA.....|
|00001750| 0b 3f 86 27 00 c8 c9 21 | 2a 87 22 20 5b 6e 69 6c |.?.'...!|*." [nil|
|00001760| 20 73 65 72 76 65 72 2d | 63 6c 69 65 6e 74 73 20 | server-|clients |
|00001770| 74 61 69 6c 20 6c 69 76 | 65 2d 63 6c 69 65 6e 74 |tail liv|e-client|
|00001780| 20 74 20 6d 61 70 63 61 | 72 20 73 74 72 69 6e 67 | t mapca|r string|
|00001790| 70 20 62 75 66 66 65 72 | 2d 6e 61 6d 65 20 79 65 |p buffer|-name ye|
|000017a0| 73 2d 6f 72 2d 6e 6f 2d | 70 20 22 53 65 72 76 65 |s-or-no-|p "Serve|
|000017b0| 72 20 62 75 66 66 65 72 | 73 20 73 74 69 6c 6c 20 |r buffer|s still |
|000017c0| 68 61 76 65 20 63 6c 69 | 65 6e 74 73 3b 20 65 78 |have cli|ents; ex|
|000017d0| 69 74 20 61 6e 79 77 61 | 79 3f 20 22 5d 20 37 5d |it anywa|y? "] 7]|
|000017e0| 20 6b 69 6c 6c 2d 65 6d | 61 63 73 2d 71 75 65 72 | kill-em|acs-quer|
|000017f0| 79 2d 66 75 6e 63 74 69 | 6f 6e 73 5d 20 33 29 0a |y-functi|ons] 3).|
|00001800| 28 64 65 66 61 6c 69 61 | 73 20 27 73 65 72 76 65 |(defalia|s 'serve|
|00001810| 72 2d 65 64 69 74 20 23 | 5b 28 26 6f 70 74 69 6f |r-edit #|[(&optio|
|00001820| 6e 61 6c 20 61 72 67 29 | 20 22 08 84 10 00 09 83 |nal arg)| "......|
|00001830| 10 00 c2 09 21 c3 3e 83 | 14 00 c4 c5 21 87 c6 c7 |....!.>.|....!...|
|00001840| 20 21 87 22 20 5b 61 72 | 67 20 73 65 72 76 65 72 | !." [ar|g server|
|00001850| 2d 70 72 6f 63 65 73 73 | 20 70 72 6f 63 65 73 73 |-process| process|
|00001860| 2d 73 74 61 74 75 73 20 | 28 73 69 67 6e 61 6c 20 |-status |(signal |
|00001870| 65 78 69 74 29 20 73 65 | 72 76 65 72 2d 73 74 61 |exit) se|rver-sta|
|00001880| 72 74 20 6e 69 6c 20 73 | 65 72 76 65 72 2d 73 77 |rt nil s|erver-sw|
|00001890| 69 74 63 68 2d 62 75 66 | 66 65 72 20 73 65 72 76 |itch-buf|fer serv|
|000018a0| 65 72 2d 64 6f 6e 65 5d | 20 32 20 22 5c 0a 53 77 |er-done]| 2 "\.Sw|
|000018b0| 69 74 63 68 20 74 6f 20 | 6e 65 78 74 20 73 65 72 |itch to |next ser|
|000018c0| 76 65 72 20 65 64 69 74 | 69 6e 67 20 62 75 66 66 |ver edit|ing buff|
|000018d0| 65 72 3b 20 73 61 79 20 | 5c 22 44 6f 6e 65 5c 22 |er; say |\"Done\"|
|000018e0| 20 66 6f 72 20 63 75 72 | 72 65 6e 74 20 62 75 66 | for cur|rent buf|
|000018f0| 66 65 72 2e 0a 49 66 20 | 61 20 73 65 72 76 65 72 |fer..If |a server|
|00001900| 20 62 75 66 66 65 72 20 | 69 73 20 63 75 72 72 65 | buffer |is curre|
|00001910| 6e 74 2c 20 69 74 20 69 | 73 20 6d 61 72 6b 65 64 |nt, it i|s marked|
|00001920| 20 5c 22 64 6f 6e 65 5c | 22 20 61 6e 64 20 6f 70 | \"done\|" and op|
|00001930| 74 69 6f 6e 61 6c 6c 79 | 20 73 61 76 65 64 2e 0a |tionally| saved..|
|00001940| 57 68 65 6e 20 61 6c 6c | 20 6f 66 20 61 20 63 6c |When all| of a cl|
|00001950| 69 65 6e 74 27 73 20 62 | 75 66 66 65 72 73 20 61 |ient's b|uffers a|
|00001960| 72 65 20 6d 61 72 6b 65 | 64 20 61 73 20 5c 22 64 |re marke|d as \"d|
|00001970| 6f 6e 65 5c 22 2c 20 74 | 68 65 20 63 6c 69 65 6e |one\", t|he clien|
|00001980| 74 20 69 73 20 6e 6f 74 | 69 66 69 65 64 2e 0a 0a |t is not|ified...|
|00001990| 54 65 6d 70 6f 72 61 72 | 79 20 66 69 6c 65 73 20 |Temporar|y files |
|000019a0| 73 75 63 68 20 61 73 20 | 4d 48 20 3c 64 72 61 66 |such as |MH <draf|
|000019b0| 74 3e 20 66 69 6c 65 73 | 20 61 72 65 20 61 6c 77 |t> files| are alw|
|000019c0| 61 79 73 20 73 61 76 65 | 64 20 61 6e 64 20 62 61 |ays save|d and ba|
|000019d0| 63 6b 65 64 20 75 70 2c | 0a 6e 6f 20 71 75 65 73 |cked up,|.no ques|
|000019e0| 74 69 6f 6e 73 20 61 73 | 6b 65 64 2e 20 20 28 54 |tions as|ked. (T|
|000019f0| 68 65 20 76 61 72 69 61 | 62 6c 65 20 60 6d 61 6b |he varia|ble `mak|
|00001a00| 65 2d 62 61 63 6b 75 70 | 2d 66 69 6c 65 73 27 2c |e-backup|-files',|
|00001a10| 20 69 66 20 6e 69 6c 2c | 20 73 74 69 6c 6c 0a 69 | if nil,| still.i|
|00001a20| 6e 68 69 62 69 74 73 20 | 61 20 62 61 63 6b 75 70 |nhibits |a backup|
|00001a30| 3b 20 79 6f 75 20 63 61 | 6e 20 73 65 74 20 69 74 |; you ca|n set it|
|00001a40| 20 6c 6f 63 61 6c 6c 79 | 20 69 6e 20 61 20 70 61 | locally| in a pa|
|00001a50| 72 74 69 63 75 6c 61 72 | 20 62 75 66 66 65 72 20 |rticular| buffer |
|00001a60| 74 6f 0a 70 72 65 76 65 | 6e 74 20 61 20 62 61 63 |to.preve|nt a bac|
|00001a70| 6b 75 70 20 66 6f 72 20 | 69 74 2e 29 20 20 54 68 |kup for |it.) Th|
|00001a80| 65 20 76 61 72 69 61 62 | 6c 65 20 60 73 65 72 76 |e variab|le `serv|
|00001a90| 65 72 2d 74 65 6d 70 2d | 66 69 6c 65 2d 72 65 67 |er-temp-|file-reg|
|00001aa0| 65 78 70 27 20 63 6f 6e | 74 72 6f 6c 73 0a 77 68 |exp' con|trols.wh|
|00001ab0| 69 63 68 20 66 69 6c 65 | 6e 61 6d 65 73 20 61 72 |ich file|names ar|
|00001ac0| 65 20 63 6f 6e 73 69 64 | 65 72 65 64 20 74 65 6d |e consid|ered tem|
|00001ad0| 70 6f 72 61 72 79 2e 0a | 0a 49 66 20 69 6e 76 6f |porary..|.If invo|
|00001ae0| 6b 65 64 20 77 69 74 68 | 20 61 20 70 72 65 66 69 |ked with| a prefi|
|00001af0| 78 20 61 72 67 75 6d 65 | 6e 74 2c 20 6f 72 20 69 |x argume|nt, or i|
|00001b00| 66 20 74 68 65 72 65 20 | 69 73 20 6e 6f 20 73 65 |f there |is no se|
|00001b10| 72 76 65 72 20 70 72 6f | 63 65 73 73 20 72 75 6e |rver pro|cess run|
|00001b20| 6e 69 6e 67 2c 20 0a 73 | 74 61 72 74 73 20 73 65 |ning, .s|tarts se|
|00001b30| 72 76 65 72 20 70 72 6f | 63 65 73 73 20 61 6e 64 |rver pro|cess and|
|00001b40| 20 74 68 61 74 20 69 73 | 20 61 6c 6c 2e 20 20 49 | that is| all. I|
|00001b50| 6e 76 6f 6b 65 64 20 62 | 79 20 5c 5c 5b 73 65 72 |nvoked b|y \\[ser|
|00001b60| 76 65 72 2d 65 64 69 74 | 5d 2e 22 20 22 50 22 5d |ver-edit|]." "P"]|
|00001b70| 29 0a 28 64 65 66 61 6c | 69 61 73 20 27 73 65 72 |).(defal|ias 'ser|
|00001b80| 76 65 72 2d 73 77 69 74 | 63 68 2d 62 75 66 66 65 |ver-swit|ch-buffe|
|00001b90| 72 20 23 5b 28 6e 65 78 | 74 2d 62 75 66 66 65 72 |r #[(nex|t-buffer|
|00001ba0| 29 20 22 c0 09 21 83 0d | 00 c2 09 21 88 82 19 00 |) "..!..|...!....|
|00001bb0| c3 09 21 83 19 00 c2 c4 | 09 21 21 88 c5 c6 20 21 |..!.....|.!!... !|
|00001bc0| 83 28 00 c2 c7 c8 c9 ca | 23 21 88 0e 0b 83 47 00 |.(......|#!....G.|
|00001bd0| cc 0e 0b 21 83 40 00 cd | 0e 0b 21 83 40 00 ce 0e |...!.@..|..!.@...|
|00001be0| 0b 21 87 cf d0 0e 0b 21 | 21 87 0e 11 83 54 00 cf |.!.....!|!....T..|
|00001bf0| 0e 11 40 41 40 21 87 ce | d2 20 21 87 22 20 5b 77 |..@A@!..|. !." [w|
|00001c00| 69 6e 64 6f 77 70 20 73 | 65 72 76 65 72 2d 77 69 |indowp s|erver-wi|
|00001c10| 6e 64 6f 77 20 73 65 6c | 65 63 74 2d 77 69 6e 64 |ndow sel|ect-wind|
|00001c20| 6f 77 20 66 72 61 6d 65 | 70 20 66 72 61 6d 65 2d |ow frame|p frame-|
|00001c30| 73 65 6c 65 63 74 65 64 | 2d 77 69 6e 64 6f 77 20 |selected|-window |
|00001c40| 77 69 6e 64 6f 77 2d 6d | 69 6e 69 62 75 66 66 65 |window-m|inibuffe|
|00001c50| 72 2d 70 20 73 65 6c 65 | 63 74 65 64 2d 77 69 6e |r-p sele|cted-win|
|00001c60| 64 6f 77 20 6e 65 78 74 | 2d 77 69 6e 64 6f 77 20 |dow next|-window |
|00001c70| 6e 69 6c 20 6e 6f 6d 69 | 6e 69 20 74 20 6e 65 78 |nil nomi|ni t nex|
|00001c80| 74 2d 62 75 66 66 65 72 | 20 62 75 66 66 65 72 70 |t-buffer| bufferp|
|00001c90| 20 62 75 66 66 65 72 2d | 6e 61 6d 65 20 73 77 69 | buffer-|name swi|
|00001ca0| 74 63 68 2d 74 6f 2d 62 | 75 66 66 65 72 20 73 65 |tch-to-b|uffer se|
|00001cb0| 72 76 65 72 2d 73 77 69 | 74 63 68 2d 62 75 66 66 |rver-swi|tch-buff|
|00001cc0| 65 72 20 73 65 72 76 65 | 72 2d 62 75 66 66 65 72 |er serve|r-buffer|
|00001cd0| 2d 64 6f 6e 65 20 73 65 | 72 76 65 72 2d 63 6c 69 |-done se|rver-cli|
|00001ce0| 65 6e 74 73 20 6f 74 68 | 65 72 2d 62 75 66 66 65 |ents oth|er-buffe|
|00001cf0| 72 5d 20 35 20 22 5c 0a | 53 77 69 74 63 68 20 74 |r] 5 "\.|Switch t|
|00001d00| 6f 20 61 6e 6f 74 68 65 | 72 20 62 75 66 66 65 72 |o anothe|r buffer|
|00001d10| 2c 20 70 72 65 66 65 72 | 61 62 6c 79 20 6f 6e 65 |, prefer|ably one|
|00001d20| 20 74 68 61 74 20 68 61 | 73 20 61 20 63 6c 69 65 | that ha|s a clie|
|00001d30| 6e 74 2e 0a 41 72 67 20 | 4e 45 58 54 2d 42 55 46 |nt..Arg |NEXT-BUF|
|00001d40| 46 45 52 20 69 73 20 61 | 20 73 75 67 67 65 73 74 |FER is a| suggest|
|00001d50| 69 6f 6e 3b 20 69 66 20 | 69 74 20 69 73 20 61 20 |ion; if |it is a |
|00001d60| 6c 69 76 65 20 62 75 66 | 66 65 72 2c 20 75 73 65 |live buf|fer, use|
|00001d70| 20 69 74 2e 22 5d 29 0a | 28 62 79 74 65 2d 63 6f | it."]).|(byte-co|
|00001d80| 64 65 20 22 c0 c1 c2 5c | 22 88 c3 c4 21 87 22 20 |de "...\|"...!." |
|00001d90| 5b 67 6c 6f 62 61 6c 2d | 73 65 74 2d 6b 65 79 20 |[global-|set-key |
|00001da0| 22 18 23 22 20 73 65 72 | 76 65 72 2d 65 64 69 74 |".#" ser|ver-edit|
|00001db0| 20 70 72 6f 76 69 64 65 | 20 73 65 72 76 65 72 5d | provide| server]|
|00001dc0| 20 33 29 0a | | 3). | |
+--------+-------------------------+-------------------------+--------+--------+